package org.nimi317.web_gis.exception;

import lombok.ToString;
import org.springframework.http.HttpStatus;

/**
 * @author thunderobot
 */
@ToString
public enum E {
    LoginException("登陆错误", 1001),
    UserNotFoundException("用户不存在", 1000),
    TokenException("令牌错误", 1002),
    TokenExpiredException("令牌已过期请重新登录", 1003),
    NoTokenException("令牌解析错误或者不存在", 1004),
    TokenInvalidException("令牌无效请重新刷新", 1005),
    TokenHasBeenChangedException("令牌已被修改", 1006),
    CaptchaException("验证码错误", 1007),
    CaptchaExpiredException("验证码已过期", 1008),
    CaptchaSliderException("验证码滑块错误", 1009),
    CaptchaNotFoundException("验证码不存在", 1010),
    BodyIsNullException("请求体为空", 1011),
    ServiceNotFoundException("服务未找到", HttpStatus.SERVICE_UNAVAILABLE.value()),
    EmailNotAllowException("邮箱不符合要求", 1012),
    EmailHasSendException("邮箱已发送", 1013),
    EmailCodeExpired("邮箱验证码已过期", 1014),
    RegisterTypeException("注册类型错误", 1015),
    UserRegisterException("用户注册失败", 1016),
    LogoutException("登出失败", 1017),
    FileException("文件错误", 1018),
    UserHasLoginException("用户已登录", 1019),
    UserRegisteredException("用户已注册", 1020),
    UserLogoutException("用户已注销", 1021),
    UserDeleteException("用户已被封禁", 1022),
    UserRoleException("用户角色不存在", 1023),
    UserNeedLoginException("用户未登录", 1024),
    RoleNotException("用户没有对应权限", 1025),
    PermissionException("权限不足", 1026),
    EmailCodeErrorException("邮箱验证码错误", 1027),
    InnerException("没有内部访问权限", 1028),
    EnumException("输入参数不符合范围", 1029),
    MenuNameException("菜单名称已存在", 1030),
    ComponentException("外链地址应该以https://开头", 1031),
    PermissionNotNullException("权限标识不允许为空", 1032),
    ComponentNotNullException("组件标识不允许为空", 1033),
    UrlException("链接不符合要求", 1034),
    AlterUserNotFoundException("修改用户不存在", 1035),
    AvatarTypeErrorException("上传头像文件类型错误", 1036),
    RoleNameException("角色名字已存在", 1037),
    RoleRemarkException("角色标志已存在", 1038),
    AdminAlterException("管理员禁止修改", 1039),
    DeleteRoleException("删除角色不存在", 1040),
    NoMd5Exception("md5不存在", 1050),
    FileUrLNotFoundException("文件不存在", 1051),
    FileServiceException("文件服务调用失败", 1052),
    ShopRegisterException("商家已经入驻", 1053),
    GoodTypeIdNotFoundException("商品类型id不正确", 1054),
    GoodTypeParentIdException("商品类型父节点错误", 1055),
    GoodTypeTreeException("商品分类树形结构不正确", 1056),
    FolderNotFoundException("文件夹不存在", 1057),
    ShopNotFoundException("店铺不存在", 1058),
    ResourceParentNotRoot("资源父节点不为根节点", 1059),
    PermissionError("权限关系错误", 1060),
    PermissionExistException("权限标识已存在", 1061),
    PermissionNotExistException("权限不存在", 1062),
    StationIdNotFoundException("站点不存在", 1063),
    AirQualityPredictException("预测数据缺失较多，不能够进行预测", 1064),
    DataTableNotFoundException("数据表不存在", 1065),
    TableRangeAddException("数据表范围添加失败", 1066),
    JobAlreadyRunningException("任务处于运行中", 1067),
    JobAlreadyStoppedException("任务处于停止中", 1068),
    JobNotFoundException("任务不存在", 1069),
    CronException("Cron表达式错误", 1070),
    KrigingExistException("克里金插值图像已存在", 1071), ImageTypeException("图像文件类型错误", 1072),
    KrigingParamException("克里金插值参数错误", 1073),
    TimeNotLegitimateException("时间不合法", 1074),
    ModelNotFoundException("模型不存在", 1075),
    PredictInputNotMatch("输入数据维度不匹配", 1076), ModelNotFinishedException("模型尚未完成",1077 );
    private final int i;
    private final String s;

    E(String s, int i) {
        this.i = i;
        this.s = s;
    }

    public int getI() {
        return i;
    }

    public String getS() {
        return s;
    }

    public String getValue() {
        return this.name() + " = " + this.i;
    }
}
